{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Introduction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/Patrick/Documents/Github/PRML_learning/PRML/notebooks'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "ename": "ModuleNotFoundError",
     "evalue": "No module named 'PRML'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-7-1abbdb40eaaf>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_line_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'matplotlib'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mPRML\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprml\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpreprocess\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mPolynomialFeature\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m from prml.linear import (\n\u001b[1;32m      7\u001b[0m     \u001b[0mLinearRegression\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'PRML'"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "from PRML.prml.preprocess import PolynomialFeature\n",
    "from prml.linear import (\n",
    "    LinearRegression,\n",
    "    RidgeRegression,\n",
    "    BayesianRegression\n",
    ")\n",
    "\n",
    "np.random.seed(1234)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1. Example: Polynomial Curve Fitting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def create_toy_data(func, sample_size, std):\n",
    "    x = np.linspace(0, 1, sample_size)\n",
    "    t = func(x) + np.random.normal(scale=std, size=x.shape)\n",
    "    return x, t\n",
    "\n",
    "def func(x):\n",
    "    return np.sin(2 * np.pi * x)\n",
    "\n",
    "x_train, y_train = create_toy_data(func, 10, 0.25)\n",
    "x_test = np.linspace(0, 1, 100)\n",
    "y_test = func(x_test)\n",
    "\n",
    "plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
    "plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd8AAAD4CAYAAACt3uxiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzddXgUVxfA4d/EcCdA0CDBneBQpEhxKd4WL9JSvkKRUqBNgSItRUuhLS7FUoK7S4sWC+4aNIQQiO/5/riBIkGz2dkk932eeUhmZ+aeXW7m7MxcMUQETdM0TdNsx8HsADRN0zQtodHJV9M0TdNsTCdfTdM0TbMxnXw1TdM0zcZ08tU0TdM0G3Myo9D06dOLu7u7GUVrCcCBAwfuiIirGWXruq3FJjPrtmZdpiRfd3d39u/fb0bRLwgPhxUr4NgxyJwZmjWDVKnMjkqLCcMwLplVtj3VbT8/8PaG+/ehfHmoXh0Mw+yotJgws25r1pWgbzufOgX588P48RASAmvWQK5csGqV2ZFpWsz88gsULAj//gsPH8KXX6oEfOeO2ZFpmgYmXfnaA4sFGjWCr7+GTz/9b/2ePVCvHhw+DFmymBefpr2rnTth1Cg4eBAe3wEfPhz69IHOnWHpUlPD0zSNBHzlu3kzJE2qTkZPK1sWWraE6dPNiUvTYurXX6F///8SL6jbzcOGwa5dcPmyaaFpmhYlwSbfM2egdOnon4GVLq1e17S46HHdfl6SJOpW9Llzto9J07RnJdjkmyMHHDkS/WuHDz971aBpccnL6nZoKJw8qV7XNM1cCTb51qoFN27AwoXPrvf1hTlzoEMHc+LStJjq1g1GjICbN59dP3IkFC+uGhVqmmauBNvgyskJfHxU46p58+C999RVwZIl6plZzpxmR6hp76ZGDejUCQoXho8/hkyZYOVK8PeHDRvMjk7TNEjAV76grgJOn1atnv38VLej48ehVSuzI9O0mBk4EP7+G9Kkgdu3VVejQ4dUX3ZN08yXYK98H0uWTF0laFp84+EB335rdhSapkUnQV/5apqmaZoZdPLVNE3TNBvTyVfTNE3TbMwqydcwjOmGYdwyDMPXGsfTNHug67WmabHFWle+M4EPrHQsTbMXM9H1WtO0WGCV1s4ist0wDHdrHMsMl+9fZvWZ1ey+upuTd07iF+RHaEQoSZ2Tkil5Jgq6FqRS9krUzl0btxRuZoer2Uhcr9eRlkh2X93NxvMbOeB3gAsBF/AP9sciFlInTo17aneKZSxGNfdqVMtZDRdHF7ND1rQEw2ZdjQzD6AJ0AciePbutin2pCEsEC30XMuXAFHZe3glAhmQZKJKhCFXdq5LEKQkPwx9y5f4VfE76MO3gNAwM3s/1Pj1K96B+3vo4Ojia/C40e2BvddvvgR+T9k1i+sHp+AX5YWBQwLUAHmk9KJulLA6GA/7B/py7d45N5zcxatco0iROQ5sibehZtid50+U1+y1oWrxniIh1DqSuEFaKSOHXbevp6SlmTTguIiw+vphvNn3DuXvn8EjrQccSHWmSvwl50+XFiGamBYtYOHrzKEtOLGHm4Zlcvn+ZIhmKMKrGKOp41DHhXWivYhjGARHxtNKx3HnDeg3m1u2AkACGbBvCr/t+JdwSTl2Punxc5GNq56lN6sSpo93nYdhDtlzcwnzf+Xgf9yY8Mpy2xdoyrPowsqbMauN3oL2ONeu2Zq4ElXwv3LtA5xWd2XxhM0UzFmVI1SE0yNcAB+PNH31HWCJYdGwR3239jrP+Z2mcrwk9ck0iQxI3ChUCB91+3HQJLfk+/kLZY3UP7jy6Q/vi7RlYeSC50+Z+q+PcCLrB6L9H88veX3B2dGZA2aHUTNmTzG4Oem5rO6GTb/yRYFLFnMNzKDK5CPuu7ePXur/yb5d/aZS/0VslXgAnByfaFGnD8c+O0yr9SJYdW0stnyLU7rkcDw/4669YegOaFo0HoQ/42OdjWnq3xD21Owe6HGB6o+lvnXgBMiXPxOhaoznY6SRpAt9j4I5eVJ9ZgyIVrlOvHly9GgtvQNMSKGt1NZoP/APkMwzjqmEYdjNgY3hkON1Xdqft0raUylyKY58do3vp7jF+XrtmlTM7R/bnzyr/Usw9O35VG1Fx8CB6fGFh/XorBa+Zyp7rNcDpu6cp/UdpFvguYEjVIfzd6W9KuJWI8XEHfu5OhYsrGVd9KpbMe3D5ohRuZXbx/vsQHGyFwDVNU7esbL2UKlVKbCEgOECqzawmeCH91veT8Mhwqx3b01Nk+XL1c3B4sHRa1knwQsr+3EwqVn1ktXK0twfsFxPqtdiwbm+9sFVSj0wt6X9ML1svbLXacY8cEcmcWSQ0VP1+9OZRyTMhj7gMdZGiH/0pM2darSjtHZhZt/Vi3SXe3na+EXSDKjOrsPPyTmY3ns2omqNwcrBO4+6QEDh8GOrWVb8ndkrMHw3+4OdaP7P3wV/syvkBAcGBVilLiwfOnoVixWD8eLh7N8aH8znhQ625tXBL7sa+T/dRxb2KFYJUduxQ02y6RPU6KpyhMHs676Fc1nIc8WjD5H8nWK0sTUvI4mXyvf7gOlVnVuWM/xlWtlnJJ8U+serxnZzA0RECn8qvhmHQu3xvJtf4E7L+Ta25NQgICbBquVoc5e8PiRKpef0yZ4bWrWHTJrBY3vpQC30X0nxxc0q6lWRnx524p3a3aqjJkr34/SBtkrSs/3g9hYym7En7P0buHGnVMjUtIYp3yfdm0E2qz6rOtQfXWPfxOmrlrmX1MpycoGlTmBDNRcCFFa2o6e/DoRuHqD23NoGh+go4wStTBvbuVRPqdukCa9eqGe89POCHH+DatTc6jPdxb9osaUPF7BXZ8MkG0iZJa/VQGzaEzZvVxfrTwkMS8XDWQmpl+ogBmwbw066frF62piUoZtzrjq3nYveC70nRyUUl6Q9JZcelHbFSxmMXLohkzSry+ecie/eK7N4t0qWLiLu7yNWrIstOLhOnIU5SZUYVeRSmnwHbEvb+zPfRI5G5c0WqVRMBEQcHkfr1RZYuFQkLi3aX1adXi9MQJ6k4raIEhQa99WfyNn77TdXtKVNEjh0T8fYWKVFCpGtXkbCIcGnl3UrwQqbsmxKrcWgvMrNu68W6iymFxkbyDQ4PlvdmvCfOQ5xl/dn1Vj9+dK5fF/n6a5EiRUSKFhUZNEjk5s3/Xv/zyJ9ieBnSeEFjiYiMsElMmth/8n3amTMiAwaIuLmpP8dMmVSlOn36ySZ7ru6RpD8klRJTSkhAcMBbfx7vYssWkaZNRfLnF6leXWTePBGLRb0WFhEm9ebVE8PLEO9j3jaJR1N08o0/i9UG2Xgb1h6IwCIW2vzVhoXHFjL/w/m0KtzKaseOqYl7JtJzbU96lunJ+DrjzQ4nQTBzIIJ3rtsREbB6NUybBqtWQWQkVKnCrdYN8bw7AufkKfm7499kTJ7R+kG/g0fhj6gxuwYHbxxkc9vNlM9W3uyQEgQ9yEb8ES+e+X635TsWHlvIqBqj7CrxAnxR9gt6levFhL0T+HXfr2aHo9krJyf1wHXZMrh8GYYPJ/LKZTJ0+4qjQ+9y4Eh5Mp71MzvKJ5I6J2VZq2VkTZmVRgsacSngktkhaVqcEueT70LfhQzbMYxOJTrRt0Jfs8OJ1k81f6J+3vr0XNOTTec3mR2OZu8yZyayfz8afZ+fGu0dCKldndRzvaFECShVCiZPhvv3zY4S12SurGi9grDIMBouaEhQWJDZIWlanBGnk+/hG4fpsKwDFbNV5Nd6v0Y7KYI9cHRwZF7TeeRPn5+W3i25GHDR7JA0Ozd4y2BWnVtD889/JePSjeDnBxMnqtvTn30Gbm7Qrp3qmGvCo6PH8qfPz8JmC/G95Uun5Z0w4zGWpsVFcTb53gu+R9NFTUmTJA1/tfjL7uciTZkoJT4tfYiwRNB0YVNCIkLMDkmzU0tPLmXEzhF8WvJTunp2VSvTpIEePVR3pb17oW1b8PGB996D/Pnhxx/h5k1T4q2dpzbDqw9n0bFFjPlnjCkxaFpcEyeTr4jQbmk7rty/gndzb7tphPI6Huk8mNNkDgdvHOR/a/5ndjiaHTrrf5Z2S9tROnNpJtaZ+OIGhgGlS8OUKepqeMYMcHWF/v0ha1bVAX31atVgy4b6VexH0wJN6b+x/5P5sTVNe7k4mXzH/DOGFadXMLrWaMpnK8/Bg9CnD3TurBqLPnpkdoQv1yBfA76u+DW///s7c4/MNTsczY6ERITQYnELHA1HFjdfDJGJmD9fjcvxv//Brl3P3WFOlgzat4edO+HECbXRzp1qfEh3d/j2W7h40SaxG4bB9IbTyZkmJy29W3L74W2blKtpcVWcS757ru7h601f07RAU3qU/oIBA6BBA0ieXF0QLFsGhQrB+fNmR/pyQ6sPpXL2ynRb2Y3Td0+bHY5mJ/qs78PBGweZ1XgWScJyULo0/PEHFC8OmTKpR7ydOr1kVMr8+WH0aDXv319/QeHCMGwY5MoFtWrBokUQGhqr8adKnArv5t7cfXSXdkvbYZG3Hz5T0xIMMzoXv+sgGwHBAeI+zl1yjM0h94LvyZo1Innzity9++x2Y8aIVKr0TkXYzJX7VyTdqHRSYkoJCQkPMTuceIW4NMhGFJ8TPoIX0mttLxERad5cpF+//wa2EBEJChIpU0Zk+vQ3POilSyJeXiI5coiASLp0Il9+KeLr+04xvqlJeycJXsjoXaNjtZyEyMy6rRfrLqYU+q4nqDZ/tRHH7x3l78t/i4gagWfatBe3Cw9X06KdOPFOxdjMspPLBC+k99reZocSr8S15Hv1/lVJOyqtlPytpISEh8idOyKpUokEBr647cqVIhUqvGUBkZEi69apjO7srP7sy5UTmTpV5MGDt473dSwWizRZ0ESchzjL/mv7rX78hEwn3/izxJnbzvOOzOPPo3/iVdXryWg6V69CgQIvbuvkBHnzwvXrNg7yLTXM15DPPD9jzO4xbDi3wexwNBNYxEK7pe0IiQjhz6Z/ksgpETdvqtvMKVK8uH3Bgm88D8N/HBz+u/V87Rr8/LOakqtzZ1VQ586we7fVuiwZhsEfDf4gQ7IMtFnShodhD61yXE2LT+JE8r0UcInPVn9GpeyVGFBpwJP1BQvC33+/uP3Dh3DkiErA9m50rdEUSF+A9svac/dRzOd61eKWcbvHsenCJsbVHke+9PkAyJZN9Rq6cePF7Xftiv4L5xtzdYXevcHXVx2sZUuYPx/Kl4ciRWDcOLhzJwYFKOmSpmN2k9mcvnuavhvsc/AbTTOT3SffSEskbZe2RUSY02QOjg6OT17r0UO1MTl+/KntI1XL5+rVVc8Le3bpEvw8KglFzszj5oPbdF7WDbHS1Ydm/47ePMqATQNonL8xnUt2frI+RQr45BP4/PNn20hdvqwaMPfsaYXCDQMqVFDdA/z84LffVOvpXr0gSxaVlDdseKc5hy0W2LgRVk6sTqnQr5i8fzKrTq+2QtCaFn/YTfK1WNTJ5datZ9eP3T2W7Ze2M6HOhBcmDi9VCn76CSpWhCZN1MnKw0PNRfrHH7aL/V1MmwYlS6r3WzFXCfL5DWHpaW9Grv7T7NA0K3v4EC5ceLYLXFhkGJ/4fELqxKn5vf7vL4zO9uOP4OgIOXNCt27QqhUUK6YSb506Vg4wZUrVn2nPHnXLqFs3lT1r1YLcuWHoUPWM5w0EB0PduiqHZ8gA9ZMOwyWgMB/O7sSN+/rOjqY9YcaD5ucbpcydK5Inj5pNLXVqkSpVRA4cEPG96SsuQ12k8YLGYnm62edzAgJEZs0SGT9eza1r744fF8mQQc0m91hEZIR4jKwgDt+kkkv3rpgXXDyAnTS4evBApFs3Vadz5FD/9ugh8vChyDcbvxG8kOUnl7/yvRw9KjJxomobdetWjD+aNxccLDJ/vppP8PGcw3XriixZ8tI5h0VE+vcXadZMNXp8bO/lg2J86yxFvm9hg8DjNzPrtl6su5hS6NMnqNmzRXLmFNm5U3WrCAsTmTFDJH3GMCk4vqS4/ugqN4OemiQ3HujdW2TgwBfXn75zRhwGJRXPcbVe+WVDezV7SL4Wi0i1aiJt24rcuKHiun5dpHVrkXLNdovD9w7SYWmHWP0crObcOTVZdebM6pSRIYNI374iJ08+s1lkpOrNdPbsi4fosfAHwQtZcHSBjYKOn3TyjT+LKYU+PkFFRKjEu3u3vKDa916CF7Lk+JIXX4zjmjUTWfCSc1CZHqqP5JR9U2wbVDxiD8l30yaRwoVVQnpa4KNH4twrn2QcmV3uh9yPlfcfa8LDRVasEGnUSMTRUZ0+KldWt50ePpTAQJGkSaPfNSQsXOhcVtKOSivXA6/bNu54RCff+LOY+sz3wgXVQKps2WfX/+v3LzsYRrJzH9GkQBNzgotFefOqx2vPE4GADd3xTFuDr9Z/xYV7F2wfnGYVGzdCs2aql8/TvLYPIjzVKWqHTCdlopTmBPeunJygfn1YulQ9Ax45UjXJbtcO3NxI3rc7lZMe4OjRF3fdv9eJnIdm8Sj8EV1XdkXlEU1LuExNvi4uEBLy7BjwoRGhtF/antQurmQ6OMG84GLRp5/CnDlqcpqnjRkDKZIbLP54Kg6GAx2Xd9RD9MVRLi6qodXTdl7eydjdYykS0p0Cid43JzBryZRJTeZw6hRs2wYNG2LMmsnaO54krlCCsLGT4N49QHUp7tMHvmqfjx+q/8CK0yuYc2SOyW9A08xlleRrGMYHhmGcMgzjrGEYX7/pftmzQ44csGTJf+uGbh/K0VtHKXn9d1o2TGuN8OyOu7uajKZOHdVKu18/NS71jBlqWF73NDkYU3sMWy9uZfK+yWaHm6C9a93+8EOYN08lHoCHYQ/psKwD2VO64zf7R5o2ja2Ibcww1LSGc+aAnx+WCb/gksjApXcPwlwzs8fjY9pm30ppT6F7d/hf2f9RKXsl/rf2f1x/YOej4GhabIrpfWvAETgH5AJcgMNAwVft83SDq507RdKnF/n5Z5EV/+4Tx+8dJW//duLhIXL7tsRrgYGqcdnIkSKrVz/7fNBisUjtObUl6Q9J5ezdaFqwJGChEaGvfF6KlZ6LxbRu9+ghUqqUyJo1Ip29ewpeSO4aW+Srr6z5adin894H5GCF7hKcOJUIqO4MI0aIXL8uZ+6ekSTDkkjdeXV1w8Ln3H54+5WfibXqtl7MX2J+ACgPrHvq9wHAgFft83xXo0OHRFq0CRGnLwqLY9/M8kXfe7btVmGnrty/IilHpJT3ZrwnkZbIF17381Mn9j17nh2AP777dvO3km1MNrn76G60r1sx+caoblssahKE/LW3CV5IxvY9ZPbshPV/JQ8fqgZZlSur042jo0ijRrLsp0/FcTAy4+CMF3axWFRXw9WrRS5ftn3IZnkY9lA8JnhIz9U9X7qNTr7xZ3GywsVzFuDKU79fBco+v5FhGF2ALgDZs2d/5rVixWD+XGcOt0pL9osG6ZI0huZWiCyOywqcDHLj1J3tXJ+Qj6wpswBqQJIzZ+D2bXBLCaEhsA/Ilx9SxbE2PG/rQVgQ1f0OUKFQftL2ivXHEjGq24YBHTrAB808GLKtG6MHjCSZSyxHbG+SJoW2bdVy+jRMnw4zZtBw2S38Urswc2c3/MZ64FasIqDG+GjbFoKC1Pge+/dD7drw++9q2tD4bNDmQZzxP8Nv+X8zOxTNBmzW4EpEfhcRTxHxdHV1fTEQw4ESbiVIlyR+Pud9V5mSZyJtkrScDzhPcEQwoBJveASUKwfFikLpMmraVl9f1YAtvrKIcPLOSZwdXKjiXsXscJ54Xd12S+HG5PqTSeaSzITo7EjevKqF9NWrsGQJSctUpPfWUNyKV0Lef5/A3+fTsFYIvXurOr5unRr1zsVFDbcZn+28vJNxu8fxmednVMtZzexwNBuwxpXvNSDbU79njVr39saNs0I48YsBpAu8xnu/FqJoxkTMr72Z8oUduHgRnFL+t016YMRXsNwJRo0yL97Y9N3mwQzbsZ3lrZaTOF8DWxRpvbqt/cfZGZo0IVmTJkxfMYTzY7+j/8kjpOzaBl+XNCQ/8AmU6AxFipAsmRp2OkcOOHkS8uc3O3jre9wYL0fqHIyqGU//eLUXWOPKdx/gYRhGTsMwXIBWwHIrHFeLkiVlFsZ/MJ4dl3fw/doJlCmjhuN9Xp06L3Zfii/2X9/PiJ0jaFesHQ1sk3hB1+1Y177+IHa2rULWz0L4puo8/EvVgilToGhRNQDA77+TKDSQ6tVh3z6zo40dAzYN4Kz/WWY0mkFyl3h+b117IsbJV0QigB7AOuAEsEhEjsX0uNqz2hZrS/289Zl1bQDn759Cohmj4No1SJPG9rHFtpCIENr6tCVT8kyM+8B2d0d03Y59DoYD0xtNJ9IQZpWbgXez+Woi7nHj1EwUXbuCmxsfb+5Irht/W23OYXux5cIWJu6dyBdlvqCqe1Wzw9FsyYxWXs+3dtbezPXA65J2VFpJ9HlZWbYi/JnXHj0SKV5cjXsf3/Rd31fwQtaeWftG22MHw0tqb2fyvsmCF5K+zq9y/3EvMotF5J9/5Eb9ThJkJBMBkQIFREaPtvEsE7EjMCRQ3Me5S54JeSQoNOiN9jGzbuvFuovdTCmovZ5bCjcm1Z1EqOseWk/6kf79YcsWNb5BxYpQuDA0amR2lNa18/JORv89mq6lulI7T22zw9FiSddSXamZqyYBZfpQssZZpk2DbdsNvltTjiJ7prJj0Q2YOhVSpVLDZWXJAs2bq1ZZTw+RF4f0Xteby/cvM7PRTN0YLwEy1Jcp2/L09JT9+/fbvNz4QERo9VcrfE740DJwL5f2FCdtWtUatEmTF8cSjsuCwoIoNqUYIsKR7kfe+HmYYRgHRMQzlsOLlq7b7+5q4FUK/1qYzE6FKLB7O7dvOVK0KPTo8VxDq2PHVCKeMwfu3lVD5XXsqPp1PdeN0V6tOr2K+vPr079if0bWGPnG+5lZtzUrM+NyW9+ai5k7D++I22g3KTSpkASHB5sdTqzpvKyzGF6GbL+4/a32Q992jrPmHp4reCHDtw9//cYhISILF4rUqiViGGqpXVtk8WKR0NDYD/Yd3Qq6JRl/yihFfi0iIeEhb7WvmXVbL9Zd4tF1UsKRLmk6pjeazrHbx/hm0zdmhxMrlp9aztSDU+lXsR+Vc1Q2OxzNRtoUaUOLQi34duu3/Ov376s3TpQIWrRQt57Pn4dBg9RVcfPmkDWruj194oRtAn9DIkKXlV24F3KPeU3nkcgpkdkhaSbRyTeO+iDPB/Qo3YOxu8ey4dwGs8OxqhtBN+i0vBPFMxVnSLUhZoej2ZBhGEyuN5mMyTLS5q82PAp/9GY7urvDkCFw8SKsXg2VK8P48VCwIFSqpGYteX6aKRNM/XcqS08uZXj14RTJWMTscDQT6eQbh/1Y80cKpC9A26Vtuf3wttnhWIVFLHRY1oGHYQ/5s+mfuDgmtPEYtbRJ0jKr8SxO3z1Nr7W93m5nR0fV4f2vv1Tfu59+gjt31DNhNzfVdWnfPlO6LJ2+e5ov131JjVw16FX+Ld+XFu/o5BuHJXFOwvwP5+Mf7E/H5R0RE04o1jb2n7GsPbuWMbXHUMC1gNnhaCZ5P9f79K3Ql9///Z0lJ5a8fofoZMjw363nHTtUi8Q5c6BMGSheHCZOBH9/6wb+EqERobTybkUSpyTMbDQTB0OfehM6XQPiuGKZivFTzZ9YeXol4/eMNzucGNl3bR8DNg2gSf4mdC3V1exwNJMNrT6U0plL02l5Jy4GXHz3AxmGuvU8axb4+cGvv4KTE/TsCZkzQ5s2sHmzmrEklvTf2J+DNw4yo9EMskRNkKIlbDr5xgNflPmCRvka0W9DP/Zei5vjS94LvkcL7xa4pXBjasOpGIbxwjYRETB3LtStq86l/frBpUsmBKvZhIujCwuaLcAiFlp5tyIsMizmB02VCrp3hwMH4OBB6NwZ1qyB998HDw8YPlyNsGVFPid8GL9nPP8r+7+XDo167RoMHKjqde3a6hF1mBXerma/dPKNBwzDYHqj6WROkZkWi1vgH2ybW2nW8vg579XAqyxstpC00cxsFREBTZuqYX87dIAfflAXKmXKqGnntPgpV5pcTGs4jT3X9tBvQz/rHrx4cfjlF5Vs585VszcMHKj6CjdsCMuXq4oXA+f8z9FhWQdKZy7NjzV/jHYbX1/w9IQHD2DYMPVYevZsqFcPQkNjVLxmz8zo36T7QsaOPVf3iPMQZ6kzt45EREaYHc5LhYSIHDwocvq0GkFwxI4Rghcy9p+xL91n2jQ1H3tY2LPr589Xw2o+PUE9up9vvNNzdU/BC1lwdEHsFnTmjMjXX4tkyiQCIm5u6vczZ95o9xs3RA4cELlzR+Rh2EMpNrmYpBmZRs77n3/pPpUqifzxx7PrIiJUl+UJE55db2bd1ot1F1MK1Seo2PN4jNxBmwa9dJugIJHx40Xee0+kXDmRQYNE/PxiPzaLRWTMGJEMGUQKFhTJkkUkV8114uDlIC0XtxTL0xn0OdWqiSxd+uL6yEiRHDlEfH3/W6eTb/wTGhEqFadVlKQ/JJUjN468dLsTJ0S6dxcpXVolr3nzVCJ7a+HhqsLVry/i4KBOlVWrisydqwZSf86tWyIffiiSOrVIsWIiKVNZJOdXH4nhZcjq06tfWsyFC+rvITz8xdc2bhQpU+bZdTr5xp9F33aOZ7qW6krH4h0ZtmMYi48tfuH1wECoWhU2bYIBA9Tcv/7+6rbXmTOxG9v48epZ1rZtaiyEzYfOcrNyS4w7hfgqb/TPeR8LCFBtY57n4KB6kNy7F4uBa6ZzcXRhcfPFpEqUikYLGnHn0Z0Xttm4UXXvzZABJkyATp1Unfv443doS+XkpAZKX7ECLl9W94MvX1YHy5wZvvgCDh0C1J3p2rVVV+MrV9TqPn/9zIUU88h58Xs+yFPnpcUEBKh4naKZWT1zZl2v4zUzMr6+OohdIeEhUmFaBUkyLInsv7b/mde+/Vbko4+evU0roiaKqVcv9mIKDRXJmFHk2DH1u/8jf8k3MZ+kHZVW+vxwXjp2fPX+3bqJeHm9uN7PT11tBAT8tw595Rtv7UYZ7p8AACAASURBVL6yWxINTSTvzXhPQiP+G0IyIkIke3Z1tfi0kBCREiVE/vrLCoVHRops2iTSpo1IokQiIFKqlBzqNlne9wx48je1/ORyMbwM+XBhM/HIa5GdO19+yIcPRdKlU1fAzxs9WuSTT55dZ2bd1ot1F1MK1Seo2Hcz6KbkGJtDMo3OJBfvXXyyPndukUOHXtz+4UORFClE/P1jJ56jR0Xy5VM/h4SHSLWZ1cR5iLNsv7hdTpxQcb3KiRMirq4iq1f/98Xh9m2R998X6dv32W118o3f/jzyp+CFfLzk4yePKrZtU0k2OjNmqFvCVnX3rnp2U6SICEiYcxKRdu3kpM9USTYsqXj+7ikPwx5K374iP/zw6kN5eYlUrPjso5/Nm1V9P3jw2W118o0/i77tHE9lSJaB1R+tJjg8mDrz6nD30V1A3ebKlOnF7ZMmheTJISgoduJJlkyVHR5hof2y9my5uIXpjaZTOUdl7t5VZb9K/vywaJHqmlm4MFSrpnqGFC2qeodoCUfrIq0ZVm0Yc4/MfTK2+f370ddrUOvv37dyEGnTqsp4+DBTOu3l34KfYPnLm3xNOnNoQhgbb35AUv8Hb1S3Bw+G996DAgWgShUoUkQNyDV7tmqQrcVTZmR8fXVgO1svbJVEQxNJmT/KSGBIoDRoIDJ16ovbHTggki3bOzZOeUOepS1SY+xnghcycsdIEVFXsc2bi4wY8WbHiIwU2bNHZMMGdfERHfSVb7xnsVik64qughcyetdouX79xccPj33+uWpUGFt8fUVcc12TgiPcpUezZPKwTEkREIuTkyx3biq3Z69+oz+se/dUvf7nn5dvbmbd1ot1F1MK1Sco21p6Yqk4fu8oladXlvVbgyRjRpEdO/57/dw5dfds0qTYi8FischHs/oIXkj57/rIoUMW2bpV3Q709BR58MB6ZenkmzBEREZIi8UtBC9k4p6J8umnqnHynTvq9chI1do5QwaRq1djL44bD25Ium8LiMPA5DJ0xm45flzEZ/hx+SPVVxKUzFWdZrNmVQ0uonu4+xZ08o0/i77tnAA0yt+IeU3nsevKLoaer8PPk+7z0Ufq9la5cmqgirZt1cA/sUFE6L2uN/MujOYjj88pevNHWrc2+OorKFsWtmx5/a05TXueo4Mjc5vMpXH+xnyx5gvyth1HjhyQJ4+6jZs7t5pXYc0ayBJLIzpef3CdKjOrEJzoEt/lXcn2P8vSuDFM3VWArAtGk8z/KixeDIUKwdChkCsX1KqlnqHoETQSNjMyvr46MMdC34XiNMRJSv5WUq4G+Mnu3SLbt6vGVrElLCJM2vm0E7yQnqt7vrIvr7Wgr3wTlNCIUPlw4YeCFzJ482C5fdsiW7aIHDnyYqt+azp155TkGJtDkg9PLtsvbn/9DpcuqdZV2bOLgGrm3KvXs53UX8PMuq0X6y6mFKpPUOZZdXqVJP0hqbiPcxffm2/+R/8u/B/5S83ZNQUv5Put39sk8YqITr4JUHhkuHRY2kHwQtr6tJXg8OBYLW/LhS2SblQ6cf3RVfZd2/d2O0dEiKxZI9KsmYizszoNly+vhnF7zfMXnXzjz6JvOycwdT3qsq39NkIiQig7tSwLfRfGSjmHbhyizNQybL24lWkNp/FtlW9fOYiGpsWEk4MT0xpO4/uq3zP78Gwqz6jMpQDrz7ohIoz9Zyw159TENZkrf3f6G8/Mnm93EEdH+OADdTv62jUYPVp1BejUSY0YM2KE1ePW7I9OvgmQZ2ZPDnQ5QNGMRWn1Vys6LOtAQEiAVY4daYnk579/ptzUcjwKf8TmdpvpWKKjVY6taa9iGAbfVvkWn5Y+nL57mmJTijH3yFzUBWPMXQu8Rv359em9vjf1POqxu9Nu8qTNE7ODurrCV1+pId927YLmzdWQV1q8p5NvApU5RWa2td/GoMqDmH14NgUmFWD24dlEWiLf+Zi7Lu+i3LRy9NnQh9p5anOo6yEqZa9kxag17fUa52/Moa6HKJShEJ/4fELtubXxveX7zscLiwxj7D9jKfhrQbZc2MKEDybg09KHVIlTWS9ow4AKFWD6dHUFrMV7MUq+hmE0NwzjmGEYFsMw3vLei2Y2Z0dnhlYfyr5P95EtZTbaLW1HsSnFmHloJsHhwW90DItY2HBuA3Xm1aHSjEpcf3CdP5v+ydKWS3FN5hrL7yD26Lodt+VMk5Pt7bfzS51f2HttL0UnF6X1X63Ze23vG18JB4QEMGHPBPJMyEPv9b2pkK0CR7of4YuyX+hHKFqMGTG5JWMYRgHAAvwG9BGRN5pZ1dPTU/brSVjtikUsLD62mGE7huF7y5cULimon7c+1dyrUTxTcbKnyk5yl+SERobi98AP31u+7Li8g+WnlnMl8Arpk6anT/k+fF7mc5K7mNtvyDCMAyISo4Sp63b8cffRXX7c9SOT90/mQdgD8qXLR4O8DaiYvSIF0hcgY/KMODk48SD0ARcDLnLA7wAbzm9g/bn1hESEUCFbBb6r8h21ctcy+61YpW5r9iFGyffJQQxjK/oEFS+ICFsvbmXukbmsOrOKmw9vvnTbJE5JqJm7Ji0LtaRpgaYkdkpsw0hfzponKF2344/A0EAW+C5g4bGF7Ly8k7DIsJdumz1VdhrmbUj74u0plbmUDaN8NZ18449oJrKKHYZhdAG6AGTPnt1WxWpvyTAMquWsRrWc1RARzvif4ditY/gF+REUFoSLowvJcePkLg/CrhYhfxpn6maDxDarSfZH1+24IWWilHQp1YUupbrwKPwRR28e5fTd09x+dBuLWEjmnIzQ29k4u7MYia9lpXYhgxIvGS9a02LqtVe+hmFsBKKrggNFZFnUNlvRVwcJwtq18NFHUK8eFCsG+/bB5s3g7a1GFbIHb3p1oOu29pjFAl26wIYN8MknaqKRhQvV/AkrVtjPCGz6yjf+eO31iojUsEUgmv27e1cl3pUroXz5/9Zv2ADNmsGFC2r2orhC123tsd9+g+PH1fK4Dn/9NXToAP37w6RJ5sanxT+6q5H2xubNg7p1n028ADVrqjGavb3NiUvTYuq33+CHH5798ujgACNHwp9/QvCbNf7XtDcW065GTQzDuAqUB1YZhrHOOmFp9ujSJTV/bnSKFVOvxxe6bicsL6vbbm7qFvSdO7aPSYvfYpR8RcRHRLKKSCIRySgita0VmGZ/PDzUM97o7NunXo8vdN1OWF5Wty9fhpAQNRCVplmTvu2svbHWrWHrVli//tn1S5aAry80aWJKWJoWY59/DgMGwL17/60LD4devdRz38T20YtOi0cScAcR7W2lSqUS7YcfQunS/7V2PnYMli/XJygt7mrbVn2BzJtXDa+cJAn89ReUKAHDhpkdnRYf6Stf7a1UqqRaNbdsqZJtx45w/jyUsp9xCDTtrRkG/PQT7N4NuXND+vQq+fr46C+VWuzQV77aW0uaVPWF1LT4JnduNcmQpsU2feWraZqmaTamk6+maZqm2ZhOvpqmaZpmYzr5apqmaZqN6eSraZqmaTamk6+maZqm2dhrpxSMlUIN4zbwspGA0wP2MJKqvcQBOpbovCqOHCJiyoCAr6jb9vK5gY4lOvYSB9hp3dasy5Tk+yqGYey3h/kq7SUO0LHYcxxvyp7i1bHYbxxgX7FosUffdtY0TdM0G9PJV9M0TdNszB6T7+9mBxDFXuIAHUt07CWON2VP8epYXmQvcYB9xaLFErt75qtpmqZp8Z09XvlqmqZpWrymk6+maZqm2ZjNkq9hGB8YhnHKMIyzhmF8Hc3riQzDWBj1+h7DMNyfem1A1PpThmHUtkEsvQ3DOG4YxhHDMDYZhpHjqdciDcM4FLUst0Es7Q3DuP1UmZ2feq2dYRhnopZ2sRzH2KdiOG0YRsBTr1ntMzEMY7phGLcMw/B9yeuGYRgTouI8YhhGyades9rn8ZYx67r99nHYpF6/YSy6bmu2JyKxvgCOwDkgF+ACHAYKPrfNZ8CUqJ9bAQujfi4YtX0iIGfUcRxjOZZqQNKon7s/jiXq9yAbfy7tgV+i2TctcD7q3zRRP6eJrTie2/4LYHosfSbvASUB35e8XhdYAxhAOWCPtT8PXbfjR73WdVsv9rzY6sq3DHBWRM6LSBiwAGj03DaNgFlRP3sD7xuGYUStXyAioSJyATgbdbxYi0VEtojIo6hfdwNZY1BejGJ5hdrABhHxF5F7wAbgAxvF0RqY/45lvZKIbAf8X7FJI2C2KLuB1IZhuGHdz+Nt6Lr9DnG8grX/H3Xd1uySrZJvFuDKU79fjVoX7TYiEgHcB9K94b7WjuVpnVDfRh9LbBjGfsMwdhuG0TgGcbxNLB9G3YbyNgwj21vua804iLpNmRPY/NRqa34mr/OyWK1dT2IaT7TbJJC6bS/1+q2Op+u2ZktOZgdgzwzD+BjwBKo8tTqHiFwzDCMXsNkwjKMici4Ww1gBzBeRUMMwuqKuoKrHYnmv0wrwFpHIp9bZ+jPRYsgO6ra91WvQdVuzIVtd+V4Dsj31e9aoddFuYxiGE5AKuPuG+1o7FgzDqAEMBBqKSOjj9SJyLerf88BWoERsxiIid58qfypQ6m3eh7XieEornrstZ+XP5HVeFqu160lM44l2mwRSt+2lXr/t8XTd1mzHFg+WUVfY51G3dB43eij03Daf82yjlEVRPxfi2UYp54lZo5Q3iaUEqpGGx3Pr0wCJon5OD5zhFY03rBSL21M/NwF2R/2cFrgQFVOaqJ/TxlYcUdvlBy4SNThLbHwmUcdx5+WNUurxbKOUvdb+PHTdjtn/o73Ua1239WLPi+0KUi35Tkf94Q+MWjcE9e0bIDGwGNXoZC+Q66l9B0btdwqoY4NYNgI3gUNRy/Ko9RWAo1F/wEeBTjaIZQRwLKrMLUD+p/btGPV5nQU6xGYcUb97ASOf28+qnwnqysMPCEc92+oEdAO6Rb1uAJOi4jwKeMbG56Hrdoz/H+2iXuu6rRd7XfTwkpqmaZpmY3qEK03TNE2zMZ18NU3TNM3GdPLVNE3TNBszpZ9v+vTpxd3d3YyitQTgwIEDd0TE1Yyydd3WYpOZdVuzLlOSr7u7O/v37zej6BesXQvjx4OvL2TODJ06qcXR0ezItHdlGMYls8q2l7r98CH88gvMmwcBAVChAvTpA56eZkemxYSZdVuzrgR923niROjeHT76CHbuhKFDYfZsaNcOdCNwLa4KDoZatWDvXvjtN9i2DSpWhHr1YM2a1++vaVrsS7DDS/r7w+DBcOgQPL5LmCMHVK4MJUqoE1bVqmZGqGnvZsYMSJUKvL3BMNS6L76AwoWhc2c4cwYcEvTXbk0zX4JNvitXwvvv/5d4H0uSRJ2gFi3SyVeLmxYtgr59wThzGpYvh/PnIWNGqjZsROLExTlwAEqXNjtKTUvYEmzyDQlRVwfRSZlS3brTtLgo8lEoxeYNhkVjIDIS0qSBgAAMLy+mpvqAyMtTobSeFEfTzJRgbz5VqQKrVkWfZL29oVo128ekaTEWHs5v91qQdf5P0KEDXLminrHcvcu9AT9S9P52yn5aFHbvNjtSTUvQEmzyzZcPataEli3hWtT8IA8ewIAB6vcWLcyNT9PeSZcuFDy7nAEpfmFyyT8Iy5AVgBM30lBjXV9mf3kQI11aVfl37TI5WE1LuBJs8gWYPh3y5oUiRVQyzpYNzp6FzZshcWKzo9O0t7R4McycCYMG8fE/n+PtDW5ukCcPVK8ObdpAtzF5VWvCzJmhYUNV4TVNszlTJlbw9PQUe+gL+djDh+runKsrpEtndjRaTBmGcUBETOnRalrdvnNHfYPMnVtd0To7A+DnB4GBkDMnuLg8tf25c1C2rKr0+/ZB8uS2j1l7a2bWbc26EvSV72PJkkH+/DrxanHYDz+o0TRmzHiSeEFd+ebL91ziBZWkFy+GU6dUPyRN02xKJ19Ni+suXIBJk6BjRyhU6M33q1YNBg5Ut6oXLYq18DRNe5FOvpoW140YocZD9fJ6+32/+051+v38c7h92+qhaZoWPaskX8MwphuGccswDF9rHE/T7EGcqNe3b/83JmqWd+i76+SkWh7evw89e1o/Pk3TomWtK9+ZwAdWOpam2YuZ2Hu9njwZQkPhyy/f/RiFC8OgQbBgAWzYYL3YNE17KauMcCUi2w3DcLfGscz0KPwR5/zPcf3BdUIjQ0nqnBS35G7kSZuHRE6JzA5PszG7r9fh4fDrr1C3rmox+Ao3g25yIeAC/sH+RFoiSZ04NTnT5CRLiiwYhgH9+8PcufDZZ3D0qO5rp2mxzGbDSxqG0QXoApA9e3ZbFftax28fZ4HvAladWcXhG4eJlMgXtnFycKJMljLUyVOHNkXakCtNLhMi1eyVaXV7zRq4eRO6dXvhpfDIcNacXcOSE0vYeH4j1x5ci/YQ6ZKko6p7VT4s8CGNx48hSd0GMGYMfPNNbEevaQma1fr5Rl0hrBSRwq/b1ux+viLCptPrmOnzLX4n9pE+xKBAmrzkzloUtzzFSVGgOE6uGXkU/ogrgVc4cvMIWy5uYe+1vQDU86jHN5W/oUK2Cqa9B+3lrNkX8m3qNdi4bjduDHv2qE7qTup7dFBYEJP3TWbs7rH4BfmRJnEaauWuRbms5cibLi/pkqTDwXDgXsg9zvqfZd/1fWw4t4FrD66ROnFqdqzMQKF/r2KcOgVZs9rmfWhvTPfzjT8S1sQKFy5wc/pEbnjPoOLZAGpEPH5BgFNRy2K1Kls2qFQJatemTcP+UGMkV+5fYfrB6UzaN4mK0yvSOH9jxtUeR47UOUx5O1oCduuWGpy8Vy9wckJEmH14Nl9v+pobQTeokasGU+pPoU6eOjg7Okd7iFq5awFgEQs7Lu1g0r5JNPT05thu4UKHBnis3fvSfTVNi5mEkXw3b0ZGjcJYv56MwE03R042q0LhGh/hnCcvpE2rrhyCgtSQQKdPw4EDsGULzJ+vBi1o0IBs3brxXY1v6VOhD+N2j2P4zuHkm1iQcoGjKRLajYYNDN5/X8+VqtnAwoUQEQHt23Pl/hU6Lu/IxvMbKZe1HEtaLKF8tvJvfCgHw4Eq7lWo4l6F41WPs+xSY1r5HKJRt4K4uPhQJGNh2rVT811rmmYlIhLjBZgP+AHhwFWg06u2L1WqlNjEsWMi778vAnI7tYsMrop8Pqme3Aq69Wb7Wywi+/aJ9O4t4uoqAiJFi4p4e8vDB5FSqd4lSdG9tuCFFBzSUAoUD5B69URCQmL3bWmvBuwXE+q12LJuV6okUqSIrDi1QtKMTCPJhyeXKfumSKQlMsaH3rPpgVxzTiv73ZzE+VsXqd73N0mbVmTWLCvErcWIteq2XsxfTCk01k9Q4eEiQ4eKODlJeOqU8m2jVJLGK4nMPDjz3Y8ZEiIyY4ZIvnwiIJczlZZB1XZKWHikjP1nrDgNcZI8EzykWrNT4uVltXeivQMzT1A2Sb5Xr4qAbO1UQ/BCSkwpIWfunrHKoUNDRbJkEfm312wRkB+7Fha8kBazu0ha1zA5d84qxWjvSCff+LPEvxukN26oKVwGD+ZanUrk6h7GzKqp2NL1H9oVb/fux02UCNq3h2PHsEyfieOt6wzdUgnnzh350uMTNrfdTEDIPf4tWZ5flv1ttbejac+LXLwQgC5JNvJRkY/Y1XEXedLmscqxV69Wwz6XGP0RlC5NnxX+fFuyN4vO/06KrvX5bUaQVcrRtIQufiXfw4fB0xP27+ef4Z+Rw3MHru4F2dt5L8UyFbNOGY6OhLRsR2GnU/D11zBvHhQsSOWDd9ndaTcZkqfjTp2arD2z3jrladpTQiNCOTVlOIczQsumg5nTZA5JnJNY7fhXr0YND+3gAOPGYVy/zvd7kzK1wVSuOG1iemQN7gXfs1p5mpZQxZ/ku20bvPceGAarZg2iUvgUKmavyJZ2W8iYPKNVi0qSBJJnTMbBFiNUw6wsWaBJE3J/PYpxedbh8jAPjRc2ZN3ZdVYtV0vYQiNC6TC1PvlO3yW0/gcMqTZEDZBhRfnzwz//gAhQoQK0bg2jR9MpXQ2q3fHmXqKD1JijE7CmxVT8SL5bt6pRfrJkYfXMQTQ8MZgqOaqwus1qUiZKafXiDEMNg/u//8GDnEVh927o3x+ZOpW8HzZkUvLfKeBagEYLGrH5wmarl68lPBGWCFr/1RrndRtxFCjTfVislFO9uho465dfolaMGgWGwa12fTm8oDGz6/rge8uX2nNr8yD0QazEoGkJQdxPvnv3Qv364O7Otpnf0/jvLyiXtRwrWq8gmUuyWCu2d281JG7u3NClhwud74ykefK1ZOIGnSbUZFu6PuRJm4dGCxqx/7p5A4pocZ+I8OmKT/E56cPggKLqTkvJkrFSloMDLF+uhoz29IReY7IxJ3N/MmxbzPpvttKmdF28m3vzr9+/NF7YmJCIkFiJQ9Piu7idfM+cUVe8GTJw9M9x1N/Ukfzp87OqzapYTbygTlK//qpu0RUpAsWLw+gjtUh+8gBG3rykbPEJf99pRPok6aj3Zz0u3LsQq/Fo8degzYOYeWgmQ8sPJM++c9Cwobr9Ekty5QJfXxg2TI01k+S7flhyuFNiRk+IiKBBvgbMbDyTzRc2035peyxiibVYNC3eMqOJtVW6Y9y7p7r9pE8vfv/ukMw/Z5ZsY7LJ1ftXY37smHr0SKRlSxGQe20+FNcfUku+ifnE/5G/2ZElCMSjrkZTD0wVvJBPl38qlrVrRUBk1SqrlvFGlixRZY8b92TVqJ2jBC/k6w1f2z6eBMrMuq0X6y5x88rXYoE2beD8eUIWzqPu3p48CH3AqjaryJLyHeY0tbYkSdTIWIMHk/rPvzi5Li83b5yjhXcLIiwRr99f04BtF7fRbVU3auWuxaS6kzDWrFFd3qpWtX0wjRtDnToweDBcvw5A3wp96VKyCyN3jWTO4Tm2j0nT4rC4mXxHjIA1a5Bx42jvP51DNw4x/8P5FMlYxOzI/mMYMGQI/PEHaXfu5/SybPzru5Gv1n1ldmRaHHAp4BLNFjcjT9o8LGq2SI2xvGaNSrxJk9o+IMOAiRMhLEy1NAQMw+CXur9Qzb0anVd0Zs/VPbaPS9PiqLiXfHftgm+/hdatGV00iIXHFjLi/RHUy1vP7Mii17kz+PjgeuY6vgvTsWjTBH2VoL1ScHgwTRY2ITwynGWtlpEqcSo4f16NOV6njnmB5c6t/va8vWHZMgCcHZ1Z3HwxmVNk5sNFH3Iz6KZ58WlaHBK3km9gIHzyCeTIwY5vPubrzQNoVrAZ/Sr2MzuyV2vYENauJdPdUPbNTcLQuZ9y5OYRs6PS7JCI8Pnqzzl44yBzm84lb7q86oW1a9W/ZiZfgL59oWhR+OwzuKf6+qZLmg6flj74B/vT+q/W+tGKpr2BuJV8+/aFS5e4+9s4mq/tSN50eZnecDqGYSCiHgXbrapVMTZsIHOIMxunRfC/yY0IDA00OyrNzsw8NJMZh2YwqPIg6uetD6h6LevWQc6c4OFhboDOzjB9Oty8+eT2M0DxTMWZXG8yWy5u4bst35kYoKbFDXEn+W7ZAr//jqXXl7TwG09gaCCLmy8mJDAF3btD6tTqvFC2LCxdanawL1GuHA4bN+EWmYQZ4y8ycMbHqAaMmga+t3z5fPXnVM9ZHa+qXmzeDNWqQVLncIKWb2azcy0uXY69LkZvrFQpGDQI5sxRt6CjtCvejk4lOjF853A9upumvUbcSL4hIdClC+TOzY+1krH5wmZ+qfsL2RIV5r33wMUFjh+H0FB1TvjyS/Xl3C55euK8eSsZIxLTa8AKFqz5yeyINDvwKPwRLb1bkjJRSuY1ncea1Y589JGq9oHrd5OCIG4Vq0WlSnDtmtnRAgMHQpky8OmncOnSk9UT6kygcIbCfOLzCX4P/EwMUNPsm2HGlZenp6fs3/8Woz4NGQLffYfvvLEUP9uHloVbMrfJXH7+2eDAAdWr52lHjkCtWnD5skrM9siydw/BVSvil9SCbN2KR+H3zA4p3jAM44CIeJpR9lvX7SjdVnbjtwO/sf7j9dTIVZNChWD8eKhZE9W9Z/hwuHuXXt+nxtERRo+2fuxv7dw5KFFCzcSwbduTP7bjt4/j+bsnFbNXZN3H63Aw4sZ3/LjgVXX7wIEDGZycnKYChYkrF1bxlwXwjYiI6FyqVKlb0W3gZOOA3t6FCzBiBGEfNqHB7fHkSJ2DyfUmYxgGy5er89LzihaFrFnVyJOVKtk+5DfhUKYswct9cKvXkBu1ahP671kSZbKDPsqazS09uZTfDvxG3wp9qZm7JufOqbaFNWpEbbBhg3qekjo1HTpAs2Z2knxz54Zp06BFC3W76ddfASjoWpBxH4yj68qu/Pz3z/St2NfkQBMGJyenqZkyZSrg6up6z8HBQT/PMpHFYjFu375d8MaNG1OBhtFtY//fjvr3BwcH+tSGK/evMK/pvCeTJYi8fJQ9B4eomVnsWPoaDTjyxw9kuRXCrSqe6oyrJSjXH1yn8/LOlHQrybDqarKEZ+r1vXuwb1/UJbAd1uvmzVVDyMmTnyRfgE9LfkrTAk0ZuHkgh24cMjHABKWwq6troE685nNwcBBXV9f7qLsQ0W9jw3je3q5dsHgxvu3rMvG6D4PfG0y5rOWevFy/Psya9eJux4+rx1Blytgw1ndUvu03TPumDpnO3uBerfcgONjskDQbERE6LuvIo/BHzGs6DxdHdds2d25Ilky1MWTzZtXcOSr5zpql6r1dGTECGjSAL76AFSsANQDH7/V/J33S9Hy05COCw3W9tgEHnXjtR9T/xUtzrP0mXxHo25dIt4zUzrSBslnKMvC9gc9s0qWLms2vXz+4dUudo9atU+eBIUPUSHz2KjgYvLwge3boNWYxnetkItXew4S3+BAidD/JhGDSvkmsO7eO0bVGkz99/ifrDQNGjoSPP4bzv29AUqQgIF9ZWvYQOwAAIABJREFUhg+HP/9UM2rZFUdH1fCiVClo3pzzUzfTogXkyJCOgJkzOX77ON29vzE7Sk2zK3aRfEXUF/zBg+GHH+DUKWDlSvjnHybWSUeAYzhzmszByeHZR9Rp0sD27XD3ruoCmTixuks9YgR07WrOe3kTERHq6uXoUVi1Cu7fTkaJdsv44gMD55VrVPB2dW9Re1eBgfDHH/DNN+rxaFCQWn/67mn6bejHB3k+oLtn9xf2a9xYtdhPtG0DK4OqkimbM0ePqvqeLZuN38SbSJYM1qwhOJsHmT6tT8u067l0CS5uqkU5h8+ZdXocs7brua017THTk29goOrL2LOn+sZ/+zZUqWzBr+NAArJloG+W4/xU8yc80kU/uICbmzqpBQaq5dAh1f7Dni1bBo8ewaJFajrCJEngy+ZlcOk2mO+roM663+grhbhu61Z1C3ndOpWbVq5Uv2/bEUG7pe1I7JSYaQ2nYbyk4cIHec+TJfQ8H/xck6AgdXGZO7dt38NbSZeOTjk28ShrXj6c0YB06+eTIQNs+vpH0hsefLa+gx5YJoEqUaJE/tdtExQUZJQuXTpfREQEZ8+edS5btmze3LlzF8qTJ0+hoUOHZniXckNCQgxPT8984eHh77J7rDI9+fburU4oR46oW8XjxsHZkd643TlKz7L3qeZRM9org+c5Oqor37hg6VLo2FHF/LRR9QYytkxxppdOrO47jh9vToBajN2/r9oiLVyoxqEYOBB8fNQz23o/jGb31d1MqjuJzCkyv/wgGzYA4FynJk723y+B0FBYsjMDyfZsUa2z27SB774jqUMi5n44i0eOV/lybS+zw9RMcPDgwZOv22bixInpGzZseM/JyQlnZ2d+/vnnq+fOnTu2b9++E9OmTctw4MCBtz7DJ06cWKpUqRI4derUtO8WeewxNfnev69OTKNGqVacAFgsJBs7lHMZkrAgr8srrwziqshINRrX81wcXSjrN4fudSLZUzoz0quXujzW4pz589UdnerVURV940Z48ICsJX0JLvsdnkmb0apwq1cfZP16dY85Xz6bxBxTj4d3dXJNo744tG+vvlHXrUulRO44/NOPGYems/rMalPj1GJPYGCgQ9WqVfPky5evoIeHR6E//vgjDUDSpElLnDp1yiVXrlyFWrVqlSNPnjyFKlas6BEUFPTk5L5o0aJ0LVq0CADIkSNHeKVKlR4BpEmTxpI7d+7gy5cvuxw7dixRmjRpimXJkqVI/vz5C6ZKlap4tmzZCvv7+zuULVs2r4+PT0qAnj17Zm7Xrl024P/tnXdYVEcXh39DF6kCAmJHOgKKDWINEkFjAwuoQMQao8aYmFhiokYNSYg9iaLYESsQK4oaET+TKCoiEEBUigKKItLrzvfHrIoKiLANnPd57sPuvXPnnr2c3XNn5hSMGTMmb//+/TJnfKX6PJ2VBejrA7q61XaGhoLExWGpG9Dy8g6005TFBa7G4eIC7N4N+Pi8GiqVmwtcPWGNr4JWYGDVIqRXmkHPywto3Vo6NVw5DebuXeZ/BIB5Bbq4oPL8OfjcXgAVoon+Bb/X/VBZWQmcO8eGz03k4bNFC8DBATh0CJgwQZktnzg6AnPnQt7OGj+Z+WOXnhWmHZuGuE/joN1CW9oiN1t8//RtF/coTqS1J61bWxdvH7k9o642ISEhGgYGBhUXLlxIAYAnT568Mr+Xnp6usnfv3ruOjo5pQ4cO7bx7927tWbNm5ZaWlpKMjAxlMzOz8tf7TEpKUkpISFAdMGBAYatWrQQ9evQo/PLLLx+6uLgU9urVy2zTpk3prVq1Eixbtizz+++/N8rOzlaIjY1VPXv2bAoA9OzZsyQ2NralKO+FKBDJyJcQ4kIISSKEpBBCFtb3vDZtWH72x4+FOyhF6Q/fI0WH4I7jMHQV+IhCPJlj3DhmaD/7DMjOZvuuXweGDgWmTAGWD/kKNh17oc+Ih6js1IF539y6JV2h31MaqtudOwPXrgnfmLPlrvAT63E96zos725B1856dXdw5QobMX/0UUNFlworVrB8G/v3AxWVBGXe0xD63Q3ElZngq+u++F9wS+jdfYh5p+dJW1SOGOjevXtJVFSUxqeffmoUHh6upqOjU1X9uJGRUZmjo2MJAHTr1q04NTVVGQCys7MV1NXV3wjzePbsmZybm5uxn59fRqtWrQQAcPv27Rb29vYlAHDnzh0VGxubUgBwdXUtpJRi06ZN+qGhoXcVhGs1wmls+vTpU6kvs1an0SNfQog8gN8AOAO4D+AqIeQopTThbedqaLBsPV9/DWzbBtBzEVC5GY9No1WRfyAAy75sGk/874qKChvULFzIZhQJYffiiy9YoRg5OQXsHLkT3bZ0w6dzOiFgdRGIqysbQbVtK23x3xsao9uensx7/9w5wGlQOwhUVJBy+RgGTvBEwu+jMfaPt3Rw5gxTDCcnEXwSydGvHxv5Ll3K/BoAwNHRHKsi/wfEbIHGkiW4flmArf/sxmmdQRjS7xOpyttcedsIVVzY2NiUXb9+PeHIkSOaS5cuNTp79my+v7//iyTfSkpKL8I45OXlaUlJiRwAtGzZUlBeXv6KcSwrKyPDhg0zHjt2bK6Pj08ewJyyysrKiJ6eXlVKSoqitrZ2pYqKCgWAK1eutMjJyVHU0tKq1NbWfqXGXUVFBVFVVZWpEBJRPAn0ApBCKb1LKS0HsB/AyPqevHYtyyDZtSsQM3MOstSAfQ83YuSHbWTea7kxaGsDW7Yw7+5794DUVGZ8n699W+hZYOWHK7Ht8RmcXPcZc+V2dQXy8qQqtyxw+8ltHIo/JIlLNVi3NTWZP4OnJzB6bBXitQjMHyki7ueNCA1l3s91Eh4O9OwJtJK5paq3MmAAC4l6+JDF3589C/R2lGc1gG/fBv10JnxvAP2dJqPkq89f1AXmAMG3gpGalyptMRpMamqqorq6umDWrFm58+fPz46JianX1Leenl5VVVUVKS4uJgAgEAjg4eHRwdTUtHTZsmUPn7e7ceNGC2Nj41IAiI2NbdGlS5cSAEhLS1OcNGlSp5CQkBRVVdWqw4cPazw/Jzs7W15LS6tSWVm52RlfIwDVn7LuC/e9AiFkOiEkmhASnZOT82K/ujqL8V3j/wxpKunY42iJqO2T4efXZJa6GoWSEjPEcjX8J77o8wUc2jrA664/cvcFsgDo0aOBsjLk5DCHaHd3YOpU9mP3PoQGC6gAvkd9Me3YNOSW5Ir7co3S7QEDWO0Bw4HHEadbgh552kj9TweOjm+5ak4Om3YeOlQkH0JaqKsDamqv7dTVhfym33H7f0cRakGgvGYDC9L/8UcWfwf20T/9FHBzA5YvBzIzJS+7NIh9GAufMB8sj1wubVEazLVr11rY2dlZmJubW65atarNd999V+/SVv3793925swZNQCIiIhQCwsL07l06ZK6ubm5pbm5ueWBAwc0b9682cLCwqIEAFRVVQVxcXEtr127pjJy5Ejjn3766X737t1Lly5dmrVy5coXYQSnTp3SGDx48DPRf9rG0eiqRoSQMQBcKKVThe+9APSmlM6u7ZzaKr88yH8ABSIPfXWDRsnUnEh6nAS7LXb4yPgjhFWMAfH2Rq6LJ6yu74XrMDm4ugIZGcBvv7HMXmvXNu+HlnX/rMMXp7/AzpE74WNXs0+AqKoaiVK3M7+aiTZrAoCiIuaZVBd79gDe3iyncw+pFGeSCMsuLEPIgeU4ndQThn9dBYyMENrbD3P/nYjZcwiMjVmKzYMHgZAQNqXdXKmoqkDvbb3xoOAB4mfFQ1dVt8Z2den2zZs3U21tbR/XdKwpcOnSJVV/f3/9sLCwe6Ls96OPPjL29/e/b2NjUybKfuvDzZs3dW1tbTvWdEwUI98HAKq7JLcV7ntnjDSMuOF9DTNdM6z6cBWOJh1FkC0BXf0jWoUH41yvRdi+nTnDzp/PHLbCw1lCh+ZK8pNkLD63GMNMhsHb1lsSlxSZbrfpOYhNTdy+/fbGJ0+yMIDu3RtyqSbD4n6LIW9nh25D0/HszDEUqRtgdIgX7rQbgG+GJ2DMGPZQuWcPCxluzllX/S754Ub2Dfwx7I9aDW9zp2/fvsUDBw7MrxThP7q0tJSMGDEiTxqG922IwvheBWBCCOlECFEC4AHgqAj65Qj5vPfn+KDdB5hzag5OfeCFIM1ZsDz+M7Bp04s2mprMCO/YIUVBxUiVoAqfhH0CZQVlBAwPkFTst+h0W+jxjMS35BqorGRPUK6uNa9FNCOU5JWwc+RO5JbkYmZ+EBYMuIKTbluhlBzP6gT/8gsgEMDFBTAyYs5rzZGY7BisuLgCntaecLNwk7Y4UmXevHlPFESYUUZFRYXOnj37icg6FCGN/nZTSisBzAZwGsB/AA5SSuMb2y/nJfJy8tgxcgfKKsvw/bXp2OewHhg5kuXkPHLkRbsuXZiDS3Nkzd9r8Pf9v7HBZUPdWaFEiEh128SErQe8zfhevMgckGSudJF4sDWwxdL+S7E/bj+ul4WiyGMqK0s2bBgLg3BxAR49ara6XV5VDp8wH+i00MFG143SFocjQUTyaE0pPUkpNaWUGlNKV4miT86rmOiYwG+wH6LzTyKycDeKt+0D+vQBJk4EoqIAsJGBjY2UBRUDCTkJWPrXUowyH4VJNpMkem2R6baqKnMsio2tu92RI6ytq2uDL9XUWNh3IewN7XGr40ycuPCITbkfOcIqUkRFgfbogccRN5qlbq+IXIHYh7EIGB4AHVUdaYvDkSDNe16rmTG712wM7DgQZYPm4ZNFOSg/cgzo2BEYMQLX98QjIIAl7mhOVFRVwCfMB+rK6tg8bHPTTjXq6AhculS7W3pVFfMsGjqUGeD3BEV5RewatQuVcvkILpyBkycpmyWYOhWVkf9DXh4Q+rgvbLPCpS2qSLny4Ar8LvnBx9YHI8xGSFscjoThxrcJIUfksH3EdqioUPylORntu2tjrmk4Hhe3gP4nLji0JgOmptKWUrSsjlqN6MxobB62Gfpq+tIWp3H068eCX2tzurp8maU8c3eXrFwygFVrK6z8cCXKO4fBy38P+vRh9Yw7uXfHDLsrULQyZe78hyQS3y12SipK4B3qDUN1Q6xzWSdtcThSgBvfJkYn7U5Y57IOj9X/wuTNG9BzbEck+J9CG7V8DPxxCCtu3EyIzozGyqiVmNh1Itwtm4FB6t+f/b14sebjQUEs/dmwYZKTSYaY7zAffdv3ReVHczB7STqGDGH1rg9eNIDCpUi2zOLp2fSLjQgEWHVwDnLTkrBj5A5oqWhJWyKOFODGtwni280Xw02HY+2theg+JB7959iCHD3KsvkPG8ZiSZs4xRXFmBQyCQZqBs3HEcXMDNDTe7FG/woFBcz4jh/PslO8h8jLyWPXqF0QUAECc30wcZLg5TqvhgYLwXJwYH4Op05JVdYG8+efKGlniJWTApG1hmDwD0HN6oEZAFauXNm6c+fOVhoaGnaLFy82AIA9e/ZoVS8JuGHDBp3U1NQXtd3Gjx/foSElA5sy3Pg2QQgh2Dp8KzSUNTAxZCLKKstYOqXgYJaYwd0dKH+jOEiTYsGZBUh6koSdI3c2n+o3hLDRb2Tkm8eCg4HCQmDGDMnLJUN01u6M9S7rcSH1Atb8vebVg+rqwPHjzKvQ3Z3pelNi1Spg1Cjco7lYOVYf9LNZwL59LGtdE/++VicwMFAvIiIiOT8/P2b16tXZABAWFqYVGxv7IrvM3r17ddPT018Y3wMHDqTZ29uXSkNeacGNbxNFX00fgSMCcfPhTSw5v4TtHD0aCAhgcaJeXsyBpwlyPPk4fo/+HfP7zIdT56ZVWOCtODsDaWnA33+/3CcQAL//zhKc9+kjPdlkhMl2kzHafDQWn1uMG1k3Xj2oqclGvQYGbA04LU06Qr4rf/wBfPstIvu1R4/pwND1J6GwYROwcyebCfnyS2lLKBImTJjQ/v79+8qurq4my5cvb+3t7d0+IiKi5dmzZ7W+/fbbtubm5pZLliwxiIuLU/X29u5sbm5uWVhYSHr16mV28eJFVYDV/p0zZ46RmZmZpa2trXlGRoYCAMTHxyvb2tqam5qaWs6dO7eNqqpqN+l+2sYh1Xq+nMYx3Gw4Pu3xKX79+1cMMR4CZ2NnVpPw6VNgwQI2VRcQ0KTyTWYVZMH3T1/Y6NtgtdNqaYsjeiZOBBYtAn79lVVeAIBdu4CbN1kqpyb0vxIXhBAEDA+A7WZbTAiZgOhp0WipVK0SRevWbDHYwYHFu1++LNve4deuAZ9/jvS+XeE08BZ+dP4Z3Q2F2cs8PZkH/B9/sJJmXbqI5pq+vu0QJ9p6vrC2Lsb2uqsl7du3Lz0yMlIzMjIy+dChQ5oA4OzsXDR48OC8jz/++NnkyZOfAkBERISmv79/Rv/+/Ytf76OkpETOwcGhcOPGjQ9mzpzZduPGjXo///xz1uzZs9vNmjXr0YwZM3J//vnnt9TklH34yLeJ4/+RPyz1LOEV6oWHhcLiH199BXz7LavTOH9+k6m4IKACeIV6obC8EMHuwVBWUJa2SKJHTY1VDQgJAf77j3k3L1z4ci2TAwDQVdXFntF7kPQ4CZ+Hf/5mAwsLNlUfG8seOGVVx4uLgQkTUKHbCg79b2OQyWB86fjaKHfpUkBRkU1Lc6CoqEg9PDyeAYC9vX1RWlqaEgDcuHFDzdfXNxcApk6d2uQXyvnIt4mjqqiKA2MOoOfWnvAO88apiacgR+RYVfOCAmDdOpbIf9UqmR9V/Rj1I87dO4etw7fCUs+y1nY5B85DLvwk1NeugJKWDI94amP2bGDjRqB3b1bWqqiIpQqV8f+PpPmw04dY1HcRVl9aDadOTvDs6vlqA1dXYOVKYMkSFsY1a5Z0BK2LVauA5GTM/LwjKrQE2D1qN/t+VsfAAJgxA3TTJqRMWg5lk/Zo376R133LCFWWUVBQoHLC1KoKCgqorKxsll8MPvJtBli3tsZ6l/U4c+cMVkcJp2oJYSWOpk9n5dqWy3aZssjUSHx34Tt4WntiSrcpNbaJjQUGf1CCwgnTURD0J0xMCfz9ZXfQUyuGhsCNG8xJztycTUs28yIKDWX5oOX4oN0HmH58OpIeJ73ZYOFClpTkiy/YfZQlEhOBX37B5UFdsEM7DXvd9sJQ3fCNZpQCu7Q+B6mqQtj4YPTowSZCmpo/WV2oqalV5efny1V//+zZM/l36cPOzq5w586d2gCwffv2plfo+jW48W0mTOs+DRO6TsD3F77HubvCDPSEsLWkyZOZ8ZVRA5xVkAWPIx7o0qoLtny8pcYsVunpwEcfAb9qLEcnwR10PB2A0xdbIDiY1TVuchgbA8eOsfU+y9pH+e87CnIKCHYPhoqCCtwPuqOo/LUwOjk5YPdutg7s4cFme2SFL75AmbICRtmnYFHfRfjI+KMam23aBPxyuBOKbfpgQdtgZGayTHXDhgHJyRKWWUxMnDgxd8OGDQYWFhaW8fHxyt7e3o/nzJnT4bnDVX362LhxY8bGjRv1TU1NLVNSUlTU1NSapkepkEbX820ItdU85TSOwvJC9N7WG4+KHuHa9Gtorymcu6qqAqZNYyWPvv0WWLECFATJySzCwcICEGEhkTopLwfCwli0jaoq4D62Al/HO+Fa1jX8O/VfWLe2rvG8r74COmT9gzn7PwA++QQIDAQA3LvHSt5mZLz0uRFVPd+GwHVbPETcicCQvUPgYe2BILegNx/QIiOBDz8EvL1RtGkHbt8GWrVC46dv34HMTOY7l5YGDBacwZitQ/CNizyueQ5E+KRwKMi9+SUrL2cynj8PWEasB+bNY4UlLCywbBlzCdi8+WX75lzP920UFBTItWzZUiAnJ4eAgADtAwcOtDp37twdactVF+Ku58uREdSU1BAyLgTlVeVwO+CGkooSdkBenjlfTZ0KrFyJtPEL0NWaYvBgYMwYlh5661bxy/foEdCzJ6vRamrKfI+cf/0CUelR2Dp8W62GFwD+Pl+MqVHeQNu2wJqX8Z+dOrFBZEyM+OXnSA9nY2es+nAVguOC34z/BYABAyBYuBjYuROf6R+Glxdgbw8MHPj2QlKiIDSURYqlpQG21lXoefgL3NFUQJCjAYLdg2s0vACTrVUr4eTHuHFstmr/fgDsu3nhgvhlbyr873//U7WwsLA0NTW1DAgIaL1+/fr70papMXCHq2aGma4Z9o7ei5H7R8L3qC/2ue1jowQ5OWDLFjzMV0GHg7/ixJB8tD/+B4iCPG7cYN97RUU2qBQXs2axCnF+fuw3JuBaAArxG1qnLACN9QS61n7uosy5UHmUwko3aWq+2E8pkJcn25EmHNGwsO9CXMu6hq/Pfg1LPUu4mrxa+WlBwXeYph6OQPkZkD/tiHLdNti6FXByYkvsrVuLR65Hj9hzbUQEW7qv3LUbCk8TMHGsIoqC/4Tq/NqjYlq0APLzWai3nKEhCzcSLkPk5bHjHIaLi0thUlJSgrTlEBV85NsMGW42HKudVmN/3H6siFzx8oCcHD6r3IDoIUvQ4fRWEI/xQGkpunVjy2Y//MB+BMRBTg6zm0uXMsN79u5ZfHbyM7h0ccEf7j/WPfIOCsLHDwNxsPMi0IGDXjl05gzrz9ZWPHJzZAdCCHaN2gUbfRt4HPHArYe3XhzLyQECdytC/8xeyJeVAFOnQkmR4rPPmD9WQID45NqzBxg1ihleWlqKvAVzcM0Q+HjJDvQ3sa9ecvsNunRhGUdDQ4U71q4Fxo8Hpcwhfvx48cnNkS7c+DZTvvngG/jY+mBZ5DLsitn1Yn/kRQKjHSvZ1O2RI8CQIcDTp+jTh4UkPnggHnmysgAjIzbVHPswFu4H3WGua44DYw7AxloeGbUFRsTEANOmocqxLzbpLYe7O/NRun2bfQQvLx6l8z7RUqkljnocRUvFlhi6byge5DOF/fdflhxMu48Z8NNPLAuW8Ilu9OiaM3qKiowMwMqKvQ5fMBq6OUVI+GISPG0nwsoKtes2mN5u3AjMnMlmhJKSgH/+ASZMYDre3EqEcl7CjW8z5XmWIKdOTph6bCpOJJ8AALRsCeTmgoVm7NvHvukODij/LwXFxeKbvm3fHrh/H7h+Nw2uQa5QV1LHyQknoaGsgb//ZhE3b/DwIRtS6OhAPuQwws8qoHdvFiY7ZAhw/TrLpOnsLB6ZObJJO812ODnxJPJK8+AS5IKnJU9f6jXALJaTE0vZeO8enj5lei8uzM1ZttDtkethvz0cCV0NMelL9sBbq25Xo29f4K+/2PqvqyvzjbSyYuu972mNjfcCbnybMUrySggZHwJbfVuMOTQGF1IvwMMDWL9e2MDTky1U5eSA9uqN6V3OQ0dHPLJoaQEfe2ZiQOCHKK4oRvikcLTTbIeMDOD774E5c147oaCAzRfm5LA5OX19tGwJfPMNGwzfvQvs3Qt0a9LZXTkNxc7ADmHjw5D8JBlD9w2Fbc8CPHggTJktJwds3w7IyYH6fILfNwnEOn07YQJwJnsfUpfPQ+tiwHTLYRA5OezZw7zxR4x4ex/W1izN8927wK1bLChBQ0N8MnOkDze+zRwNZQ2cmngKnbU74+N9H6PvxChcugT4+LAfqlit/vAfdwWppQb4OcYZ4spakVmQiauWH6JE/hGUD4Vjyw/WmDSJFaiZM4c5Yr2guJjl7L15k9Vu7SGVqCGOjOPU2QkHxhzA1QdXMeKgK/w3FGDUKJbULbG4PeKmrQeJuohP8tZh7FjxyXEq/QBUHbyw4JI8LrYeia8POaJvX/ZQeeIEc2SUVQoKIJeaCsWKisb39fjxY3k/P78G5VweMGBAl8ePH9eZdGPevHltwsLCRD4XsGHDBh1vb+86g9KOHz+uHhERIdL5E2583wP0WurhnPc5tNNsh3FHh2DFvtMwNmbrTOPHA+mKxlC58Q+ImxsryDBypEhrjKbmpWLAzgHILHyAC1NP4WRAb3TuzDICJiWxGfAXFBayocKFCyxo8j0tLM+pH6PMRyHYPRj/3P8H6586IygkF1euMBWaGuWDe11HYOq9xVBIihfL9XfF7MKEkAn47boB1ARA8eKf0KYN8PXXLEHG87VgWSMzEwpubuhoaAjbHj1gaWgI24ULYVBZ2fA+nzx5Ih8YGFijT3nFW6x7ZGRkiq6ubp1JM9atW5c5atQoqWRROX/+vHpUVJSaSDullEp8s7e3pxzJ87DwIbX9w5YqrlCke27uebOBQEDp+vWUKipSamhIaXh4o68ZkxVDDf0NqZafFr2cfrnuxo8eUdqrF6VycpTu2tXgawKIplLQa8p1W2qE/RdGlX5Qopa/WdLUp6kvD2RnU6qnR6mdHaVlZSK7nkAgoD9G/UixDNTnJwcqUFCgdOZMkfVfG3XpdkxMTCqlNPptW0EBvWZiQot9fenDrCx6g1IaHR1N43r0oAU+PvRhffqoaRs2bFiusrKywMzMrHj69OnZx44dS+revXvBoEGD8jp06FBKKY12cnJ6amlpWWRsbFzyyy+/vJC3TZs2ZZmZmTGJiYmxnTp1Khk/fnyOsbFxiaOj47OCgoJrlNJoNze3x9u3b7/zvP28efMyLSwsikxMTIqvX78eRymNfvDgQYyDg8MzY2PjknHjxuUYGhqWZWZmxrwu67p16+516NCh1Nraumj8+PE5Xl5ejyil0UFBQbe7du1aaG5uXuzg4JCfnp4ek5iYGKujo1Ohp6dXbmZmVnzq1KnEmtrVdE+E/5Ma/1985Pse0bpla1z45AL6tu8Lr1AvfHv+W1QJqj1sEgLMnctcR7W12Vywr2+DR8Eh/4Xgg+0fQF5OHpcmX4JDO4faG8fEsAwcsbFsjdfbu0HX5LyfjDQfifCJ4XiQ/wC9t/XGpfRL7IC+PkswExPDFlJFQGllKSb/ORmLzi2Ch7UHtkdqgaiqAsuWiaR/cbN9O1q1bo2KrVuRYWCAKgCwt0dpeDhSQkNwg+79AAAPFUlEQVShc+8eGjRR/uuvv95v165dWWJiYsKWLVvuA0BCQoLq77//np6amhoHAEFBQanx8fH/xcTEJGzZskU/Ozv7janm9PR0lblz5z5KSUmJ19TUrNq9e7d2TdfT1dWtTEhI+M/X1zfHz89PHwAWLlzYZsCAAQUpKSnxY8eOfZqVlaX0+nlpaWmKfn5+bS5fvpx49erVxOTk5BfR1M7OzoUxMTGJ//33X8KYMWNyV6xYYWBmZlbu7e2dM3PmzIeJiYkJLi4uhTW1e9f7xY3ve4aWihbCJ4VjSrcpWBW1Cq5BrsgqyHq1UbduLEn9okUsANjMDNiyBajnnFR5VTm+PP0l3A+6w6q1Fa5MvQKr1rXMvwkELNaiTx/Wf1RU/TxUOJzXGNRpEC5PuQwNZQ0M2jUI/pf9IaACpk8zZgC//MIcDBvB7Se34RDogF03d2HZgGUIajEJcidPsQB2fX0RfRLxEhEBjXHjkCv32q+/jg6q+vVD/okTEJmrl42NTZG5uXn58/c//fSTvpmZmaW9vb1Fdna2Ynx8vMrr5xgZGZU5OjqWAEC3bt2KU1NTa6wtOmHChKcA0KtXr+KMjAxlALhy5Yqaj49PLgCMGTMmX0ND442p7IsXL7bs06dPQZs2bSpVVFSom5vbcz953Lt3T6lfv34mpqamlhs2bDBITEysMc1JfdvVBTe+7yFK8krYOnwrAj4OwKX0S7DZbIO9sXtBqztaqagAq1ez1EBWVmyB2NqahSdV1b40c+XBFdgH2GPNP2swu+dsXPzkYo2VXACw0Uj//my0PXgwix3izlWcRmCpZ4mr065ihNkILIhYAKfdTqwa0po1LHOUlxcLOn9HKgWVWPv3WthutkX6s3Qc8zyG73stgNzsOezhdO5cMXwa8aCoCFpaWvNvf0kJiJISRJZqR1VV9UVfx48fV4+MjFSPjo5OTEpKSrCwsCgpKSl5Qw4lJaUXP0Ty8vK0tpKCKioqFGAlCEVVdnD27NntZ82a9Sg5OTlh06ZNaWVlZTXep/q2q4tGGV9CyFhCSDwhREAI4b+aTQhCCKbZT8O16ddgrG0Mr1Av9N/Z/+V03XO6dmXOT6GhrPrCxIksLc8vv7A4XCH3nt7D5D8no/e23nhS/ATHPI9h49CNUFao4aE1OppVoOnWjRWU37GDVfgRV/6/BsB1u+miqaKJw2MPI3BEIGKyY2Cz2Qbzo77Fkx2/sxC28eOBerr3UkpxPPk4um3phvln5mNQp0GInRmLj00/ZlXC7t1js0JKb8xuyixubsjbvRu6r9+C5GQoXb0KdTc35DekX01NzaqioqJabUpeXp68pqZmlbq6uuDGjRsqN2/eFHn0dc+ePQv37NnTCgBCQkI08vPz35jW7t+/f9G///6rnp2dLV9WVkZCQ0NfTGsXFBTIt2/fvgIAdu7c+SLwUl1dvaqgoED+be3ehcaOfOMAuAG42Mh+OFLCQs8Cl6dcxpaPt+D2k9vot6MfHAMdsTNmJ/JK81gjQliyi9hYICQEaNcO+PprUCMjPHGwwx4vW0z8pgtCrwXhK4evkDg7kf04Pae4GLh8meWvtLVla7snT7Jp7Tt3WEJp2UtRxXW7CUMIgW83XyR+lohJXSdh/b/r0TbCBQEzewFRURC84mL/JtmF2fjtym+w3WyL4cHDUVxRjJBxITjueRxGGkYszZq/PzBlCqvL3ITw8ECejg4qnJ3R5a+/oJqTA/ldu6Dl7AzTL79Epq4uGlSqz8DAoMre3r7QxMTEasaMGW1fP+7u7v6ssrKSdO7c2WrBggVGtra2RTX10xj8/Pwyz58/r2FiYmJ18OBBbV1d3QotLa1XPk+HDh0qvvnmm8w+ffpY9OjRw9zU1LT0+bElS5Zkenp6GltZWVno6Oi8WGdzd3fPO3HihJa5ublleHi4Wm3t3gWRlBQkhFwA8BWltF611HjZNdmkqLwIgTcCsfHKRqTkpkCeyKO7YXfYGdihnUY7qCuro7SyFFkFWSi4eQXmp69haHwFrHPY+ZQQkDZt2AhWRQUoK2NZ5zMz2douIUDv3mz07O0ttiwCoiwpyHW7eZD4OBFr/16Lvbf2YvnxYnz1N7DZ2xIpE13RumVrKMgpoKCsAKnPUnE96zpuPbwFCoruht0xt9dcTOg6AYryQj+kvDzAzo5VC4uJkWgaKlGVFCwpAfnhB+jv2wfdJ0+gYGqKks8/x0Nvb+SJVmLJUlJSQhQUFKiioiLOnj3bcvbs2R0SExOlVoyhrpKCEjO+hJDpAKYDQPv27e3T0tIafV2OeKCU4t8H/+JE8glEpUch7lEcnpS89HhWV1KHiY4Jehv1xlCToRjcwgoqV2+w1DypqcDjx0BpKZuK09NjNQvt7FgePV1dscsvaePLdbvpUFheiBP/HYXp9EWwvZqOKW4K2Nn15cDFUM0QNvo26Nu+L0aajURX/ddKbVVWssxrf/3FnAP79JGo/O9zPd/6cOvWLeVx48YZCwQCKCoq0t9++y1twIABxdKSp1HGlxByFkBNbtRLKKV/CttcAB8dNGvKq8pRVF4EeShh51ZVBAQQpKay5d/Zs9nsm6zMHNfX+HLdfo8pKQGGDQO9eBFlmzehbJInHme3wC9+SjhyhC0JOzsDS5aw50YAzNFw+nSWujIwkIXhSRhufJsWdRnft9bzpZQOFrlEnCaHkrwSlFooYfJkICUF+OMPtnx79SqwcCEQF8fS+jUluG6/x7RoARw9CjJ6NFSmfYrymxkYHLoMnt7MH1BVldW0d3YGjh4FHOxYmULs2wd8951UDC+nefFW48vhPCc6Gjh/njkoP69+5OQEnD0LmJiwYjImJtKVkcOpN2pqLPnyrFnQ2LQaUQan0dbpJ6D9hwAhmDMHaKVNcWDGX3ComgMkJLDwu0WLpC15bQgEAgGRk5MTfXJ2zjsjEAgIUHvYVmNDjUYTQu4DcABwghByujH9cWSbsDBg0qQ3yw5qagLjxrHjzQWu2+8JSkrAtm2YrnUQBjSbxZt36gSMHQuMH48Jy02x7pYTqnLzWP1K2TW8ABCXk5OjKfzR50gRgUBAcnJyNMGiJmqkUSNfSmkogNDG9MFpOlRUsMFCTaio1Dt0sknAdfv9IlRhLL7/33AYRe5jMedxcUyhLa0wL+sbfHN5Egw7vZGMSaaorKycmp2dvS07O9saPIGStBEAiKusrJxaWwM+7cypN0OGsEQ+ixezKIvnlJcDhw6xPBwcTlNkyBBgX4gKFizwfWU993Q4cCEdWNtRerLVF3t7+0cAeG7WJgJ/OuLUm0GDAENDlqEvI4Ptu3ePzdD17Al07y5d+TichrJoEUvaFhjIwtMFApYHxteX5YaRFU9+TvOBG19OvSEE+PNPlj/e1pbl0ujZk6XMDQqStnQcTsOxsgLCw5mHs44O0KoVK4K0dSswfLi0peM0R/i0M+edUFUF1q4F/PyAp0/Zj1QTSmvL4dRK9+6s6NGzZ2y5V0eHj3g54oMbX06DUFYGDN65giWHI/toakpbAs77AJ925nA4HA5HwnDjy+FwOByOhOHGl8PhcDgcCcONL4fD4XA4EoYbXw6Hw+FwJAw3vhwOh8PhSJi31vMVy0UJyQFQW8VxXQCyUJNSVuQAuCw1UZccHSilepIU5jl16Las3DeAy1ITsiIHIKO6zREtUjG+dUEIia5PIfT3RQ6AyyLLctQXWZKXyyK7cgCyJQtHfPBpZw6Hw+FwJAw3vhwOh8PhSBhZNL4B0hZAiKzIAXBZakJW5KgvsiQvl+VNZEUOQLZk4YgJmVvz5XA4HA6nuSOLI18Oh8PhcJo13PhyOBwOhyNhJGZ8CSEuhJAkQkgKIWRhDceVCSEHhMf/JYR0rHZskXB/EiFkiARkmU8ISSCExBJCzhFCOlQ7VkUIiRFuRyUgyyeEkJxq15xa7ZgPIeS2cPMRsxxrq8mQTAjJq3ZMZPeEELKdEPKIEBJXy3FCCNkglDOWENK92jGR3Y93lJnr9rvLIRG9rqcsXLc5kodSKvYNgDyAOwA6A1ACcBOA5WttZgHYLHztAeCA8LWlsL0ygE7CfuTFLMsgAKrC158+l0X4vlDC9+UTAJtqOLcVgLvCv9rC19rikuO19nMAbBfTPekPoDuAuFqODwVwCgAB0AfAv6K+H1y3m4dec93mmyxvkhr59gKQQim9SyktB7AfwMjX2owEsEv4+jAAJ0IIEe7fTykto5TeA5Ai7E9sslBK/6KUFgvf/gOgbSOu1yhZ6mAIgAhKaS6l9CmACAAuEpLDE0BwA69VJ5TSiwBy62gyEsBuyvgHgBYhxBCivR/vAtftBshRB6L+P3Ld5sgkkjK+RgAyqr2/L9xXYxtKaSWAZwB06nmuqGWpzhSwp9HnqBBCogkh/xBCRjVCjneRxV04DXWYENLuHc8VpRwQTlN2AnC+2m5R3pO3UZusotaTxspTY5v3RLdlRa/fqT+u2xxJoiBtAWQZQsgkAD0ADKi2uwOl9AEhpDOA84SQW5TSO2IU4xiAYEppGSFkBtgI6kMxXu9teAA4TCmtqrZP0veE00hkQLdlTa8BrtscCSKpke8DAO2qvW8r3FdjG0KIAgBNAE/qea6oZQEhZDCAJQBGUErLnu+nlD4Q/r0L4AKAbuKUhVL6pNr1twGwf5fPISo5quGB16blRHxP3kZtsopaTxorT41t3hPdlhW9ftf+uG5zJIckFpbBRth3waZ0njs9WL3W5jO86pRyUPjaCq86pdxF45xS6iNLNzAnDZPX9msDUBa+1gVwG3U4b4hIFsNqr0cD+Ef4uhWAe0KZtIWvW4lLDmE7cwCpECZnEcc9EfbTEbU7pQzDq04pV0R9P7huN+7/KCt6zXWbb7K8Se5CzJMvWfjFXyLctwLs6RsAVAAcAnM6uQKgc7VzlwjPSwLgKgFZzgJ4CCBGuB0V7ncEcEv4Bb4FYIoEZPkRQLzwmn8BMK92rq/wfqUAmCxOOYTvlwHwe+08kd4TsJFHFoAKsLWtKQBmApgpPE4A/CaU8xaAHuK4H1y3G/1/lAm95rrNN1ndeHpJDofD4XAkDM9wxeFwOByOhOHGl8PhcDgcCcONL4fD4XA4EoYbXw6Hw+FwJAw3vhwOh8PhSBhufDkcDofDkTDc+HI4HA6HI2H+D8eHtJjyBFLcAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i, degree in enumerate([0, 1, 3, 9]):\n",
    "    plt.subplot(2, 2, i + 1)\n",
    "    feature = PolynomialFeature(degree)\n",
    "    X_train = feature.transform(x_train)\n",
    "    X_test = feature.transform(x_test)\n",
    "\n",
    "    model = LinearRegression()\n",
    "    model.fit(X_train, y_train)\n",
    "    y = model.predict(X_test)\n",
    "\n",
    "    plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
    "    plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
    "    plt.plot(x_test, y, c=\"r\", label=\"fitting\")\n",
    "    plt.ylim(-1.5, 1.5)\n",
    "    plt.annotate(\"M={}\".format(degree), xy=(-0.15, 1))\n",
    "plt.legend(bbox_to_anchor=(1.05, 0.64), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def rmse(a, b):\n",
    "    return np.sqrt(np.mean(np.square(a - b)))\n",
    "\n",
    "training_errors = []\n",
    "test_errors = []\n",
    "\n",
    "for i in range(10):\n",
    "    feature = PolynomialFeature(i)\n",
    "    X_train = feature.transform(x_train)\n",
    "    X_test = feature.transform(x_test)\n",
    "\n",
    "    model = LinearRegression()\n",
    "    model.fit(X_train, y_train)\n",
    "    y = model.predict(X_test)\n",
    "    training_errors.append(rmse(model.predict(X_train), y_train))\n",
    "    test_errors.append(rmse(model.predict(X_test), y_test + np.random.normal(scale=0.25, size=len(y_test))))\n",
    "\n",
    "plt.plot(training_errors, 'o-', mfc=\"none\", mec=\"b\", ms=10, c=\"b\", label=\"Training\")\n",
    "plt.plot(test_errors, 'o-', mfc=\"none\", mec=\"r\", ms=10, c=\"r\", label=\"Test\")\n",
    "plt.legend()\n",
    "plt.xlabel(\"degree\")\n",
    "plt.ylabel(\"RMSE\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Regularization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "feature = PolynomialFeature(9)\n",
    "X_train = feature.transform(x_train)\n",
    "X_test = feature.transform(x_test)\n",
    "\n",
    "model = RidgeRegression(alpha=1e-3)\n",
    "model.fit(X_train, y_train)\n",
    "y = model.predict(X_test)\n",
    "\n",
    "y = model.predict(X_test)\n",
    "plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
    "plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
    "plt.plot(x_test, y, c=\"r\", label=\"fitting\")\n",
    "plt.ylim(-1.5, 1.5)\n",
    "plt.legend()\n",
    "plt.annotate(\"M=9\", xy=(-0.15, 1))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2.6 Bayesian curve fitting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = BayesianRegression(alpha=2e-3, beta=2)\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "y, y_err = model.predict(X_test, return_std=True)\n",
    "plt.scatter(x_train, y_train, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"training data\")\n",
    "plt.plot(x_test, y_test, c=\"g\", label=\"$\\sin(2\\pi x)$\")\n",
    "plt.plot(x_test, y, c=\"r\", label=\"mean\")\n",
    "plt.fill_between(x_test, y - y_err, y + y_err, color=\"pink\", label=\"std.\", alpha=0.5)\n",
    "plt.xlim(-0.1, 1.1)\n",
    "plt.ylim(-1.5, 1.5)\n",
    "plt.annotate(\"M=9\", xy=(0.8, 1))\n",
    "plt.legend(bbox_to_anchor=(1.05, 1.), loc=2, borderaxespad=0.)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
